<?php


	namespace app\lib\tools;

	class CommonTools
	{

		/**
		 * 按照概率获取数组中选中元素的下标
		 *
		 *
		 * @param $array ( [0] => 1 [1] => 5 [2] => 10 [3] => 12 [4] => 22 [5] => 50 )
		 *
		 * @param
		 *
		 * @return int|string  元素所在下标
		 * @throws
		 *
		 */
		public static function randIndex($array){
			$index = 0;
			$proSum = array_sum($array);
			foreach ($array as $key => $cur) {
				$randIndex = mt_rand(1, $proSum);
				if ($randIndex < $cur) {
					//随机出来的数字小于本身的概率则表示被选中,没有被选中的减去
					$index = $key;
					break;
				} else {
					//相当于去一个箱子里摸东西,摸出来一个就不用放回去了
					$proSum -= $cur;
				}
			}

			return $index;
		}

		/**
		 * 二维数组中符合条件的元素
		 * @param $array
		 * @param $element
		 * @param $condition
		 *
		 * @return mixed
		 * @param
		 * @throws
		 *
		 */
		public static function getElement($array,$element,$condition){
			$arr = array_filter($array,function ($item) use ($element,$condition){
				return $item[$element] == $condition;
			});
			return current($arr);
		}

	}
